package com.sjgl.esdn.mapper;

import com.sjgl.esdn.domain.entity.uc.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;

/**
 * @Author: cjb
 * @Date: 2022-09-01 10:00
 **/

@Mapper
public interface UserCenterMapper {


    /**
     * 获取头像地址通过用户id
     *
     * @param userId 用户id
     * @return {@link String}
     */
    String selectAvatarByUserId(@Param("userId") Long userId);


    /**
     * 通过id选择用户密码
     *
     * @param userId 用户id
     * @return {@link String}
     */
    String selectUserPasswordById(@Param("userId") Long userId);

    /**
     * 通过id获取用户信息
     * @param userId 用户id
     * @return {@link UserInfo}
     */
    UserInfo selectUserInfoById(@Param("userId") Long userId);


    /**
     * 更新用户名
     *
     * @param userName 用户名
     * @param userId   用户id
     * @return int
     */
    int updateUserName(@Param("userName") String userName, @Param("userId") Long userId);

    /**
     * 更新用户昵称
     *
     * @param nickName 尼克名字
     * @param userId   用户id
     * @return int
     */
    int updateNickName(@Param("nickName") String nickName, @Param("userId") Long userId);

    /**
     * 更新性别
     * @param sex    性别
     * @param userId 用户id
     * @return int
     */
    int updateSex(@Param("sex") String sex, @Param("userId") Long userId);

    /**
     * 更新手机号码
     * @param phonenumber 手机号码
     * @param userId      用户id
     * @return int
     */
    int updatePhonenumber(@Param("phonenumber") String phonenumber, @Param("userId") Long userId);

    /**
     * 更新电子邮件
     * @param email  电子邮件
     * @param userId 用户id
     * @return int
     */
    int updateEmail(@Param("email") String email, @Param("userId") Long userId);

    /**
     * 更新出生日期
     *
     * @param birthday  出生日期
     * @param userId   用户id
     * @return int
     */
    int updateBirthday(@Param("birthday") Date birthday, @Param("userId") Long userId);


    /**
     * 获取用户名通过用户id
     *
     * @param favoriteUserId 用户id
     * @return {@link String}
     */
    String selectUserNameByUserId(@Param("favoriteUserId") Long favoriteUserId);

    /**
     * 选择部门名称用户id
     *
     * @param userId 用户id
     * @return {@link String}
     */
    String selectDeptNameByUserId(@Param("userId") Long userId);


}
